package leetcode_core.leetcode_3;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class Merge {

    public int[][] merge(int[][] intervals) {
        //选择起点进行排序
        Arrays.sort(intervals, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[0] - o2[0];
            }
        });
        List<int[]> res = new ArrayList<>();
        res.add(intervals[0]);//将第一个元素入队
        for(int i = 1;i<intervals.length;i++){
            int[] interval = intervals[i];
            int[] last = res.get(res.size() - 1);//得到最后一个元素
            if(interval[0] <= last[1]){
                last[1] = Math.max(last[1],interval[1]);
            }else{
                res.add(interval);
            }
        }
        return res.toArray(new int[0][]);
    }
}
